#绘图类
from numpy.ma import arange
import matplotlib.pyplot as plt


class Paint:
    # flgsize_length:绘制的图的长
    # flgsize_width;绘制的图的宽
    # x_list:x的值（包含多个子图，list嵌套）
    # y_list;y的值（包含多个子图，list嵌套）
    # highlight_region;标注出一段连续的重要区域(list嵌套）(主要是用于显示驱动基因区域)
    def paint_scatter_diagram(self,flgsize_length,flgsize_width,x_list,y_list,highlight_region):
        if len(x_list) != len(y_list):
            print(len(x_list))
            print(len(y_list))
            return
        row_count = len(x_list)
        f1 = plt.figure(figsize=(flgsize_length, flgsize_width))  # 设置图的大小，会影响点的清晰度
        for row in arange(row_count):
            ax = plt.subplot(row_count, 1, row + 1)
            ax.scatter(x_list[row], y_list[row], color='k', s=10, alpha=0.4)
            # ax.axvline(400, color='r', linewidth=2, alpha=0.4)
            # ax.axvline(600, color='r', linewidth=2, alpha=0.4)
            for single_driver in highlight_region:
                ax.axvspan(single_driver[0], single_driver[1], facecolor='b', alpha=0.3)
        plt.show()